[INFO] fetching crate ironclad-channels 0.9.7...
[INFO] testing ironclad-channels-0.9.7 against master#1f7f8ea0721a3b1eb73e6c6d25cccb371434b320 for pr-154065-1
[INFO] extracting crate ironclad-channels 0.9.7 into /workspace/builds/worker-0-tc1/source
[INFO] started tweaking crates.io crate ironclad-channels 0.9.7
[INFO] finished tweaking crates.io crate ironclad-channels 0.9.7
[INFO] tweaked toml for crates.io crate ironclad-channels 0.9.7 written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate ironclad-channels 0.9.7 on toolchain 1f7f8ea0721a3b1eb73e6c6d25cccb371434b320
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate ironclad-channels 0.9.7 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded tokio-tungstenite v0.24.0
[INFO] [stderr]   Downloaded wasm-bindgen v0.2.113
[INFO] [stderr]   Downloaded wasm-bindgen-shared v0.2.113
[INFO] [stderr]   Downloaded wasm-bindgen-macro v0.2.113
[INFO] [stderr]   Downloaded tungstenite v0.24.0
[INFO] [stderr]   Downloaded instant-distance v0.6.1
[INFO] [stderr]   Downloaded wasm-bindgen-futures v0.4.63
[INFO] [stderr]   Downloaded wasm-bindgen-macro-support v0.2.113
[INFO] [stderr]   Downloaded imap-proto v0.16.6
[INFO] [stderr]   Downloaded async-imap v0.10.4
[INFO] [stderr]   Downloaded js-sys v0.3.90
[INFO] [stderr]   Downloaded ironclad-core v0.9.7
[INFO] [stderr]   Downloaded ironclad-db v0.9.7
[INFO] [stderr]   Downloaded rusqlite v0.32.1
[INFO] [stderr]   Downloaded web-sys v0.3.90
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] e62ef37f50fa08367a866243d50870b7905e8295e39827e9ffcde6bc0cc40227
[INFO] running `Command { std: "docker" "start" "-a" "e62ef37f50fa08367a866243d50870b7905e8295e39827e9ffcde6bc0cc40227", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "e62ef37f50fa08367a866243d50870b7905e8295e39827e9ffcde6bc0cc40227", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e62ef37f50fa08367a866243d50870b7905e8295e39827e9ffcde6bc0cc40227", kill_on_drop: false }`
[INFO] [stdout] e62ef37f50fa08367a866243d50870b7905e8295e39827e9ffcde6bc0cc40227
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 26fa1fbd7a4a9db542f69d0b3b19029c72b68d4c62016ee3d8d33deb0dd1f29c
[INFO] running `Command { std: "docker" "start" "-a" "26fa1fbd7a4a9db542f69d0b3b19029c72b68d4c62016ee3d8d33deb0dd1f29c", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.182
[INFO] [stderr]    Compiling cc v1.2.56
[INFO] [stderr]    Compiling zerocopy v0.8.39
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling concurrent-queue v2.5.0
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling rustls v0.23.36
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling object v0.37.3
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling openssl v0.10.75
[INFO] [stderr]    Compiling native-tls v0.2.18
[INFO] [stderr]    Compiling futures-lite v2.6.1
[INFO] [stderr]    Compiling rayon-core v1.13.0
[INFO] [stderr]    Compiling openssl-probe v0.2.1
[INFO] [stderr]    Compiling getrandom v0.4.1
[INFO] [stderr]    Compiling event-listener v5.4.1
[INFO] [stderr]    Compiling base64ct v1.8.3
[INFO] [stderr]    Compiling async-channel v1.9.0
[INFO] [stderr]    Compiling curve25519-dalek v4.1.3
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling ordered-float v3.9.2
[INFO] [stderr]    Compiling imap-proto v0.16.6
[INFO] [stderr]    Compiling stop-token v0.7.0
[INFO] [stderr]    Compiling email-encoding v0.4.1
[INFO] [stderr]    Compiling nom v8.0.0
[INFO] [stderr]    Compiling event-listener-strategy v0.5.4
[INFO] [stderr]    Compiling email_address v0.2.9
[INFO] [stderr]    Compiling quoted_printable v0.5.1
[INFO] [stderr]    Compiling async-lock v3.4.2
[INFO] [stderr]    Compiling async-channel v2.5.0
[INFO] [stderr]    Compiling self_cell v1.2.2
[INFO] [stderr]    Compiling mail-parser v0.9.4
[INFO] [stderr]    Compiling rayon v1.11.0
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]    Compiling socket2 v0.6.2
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling num_cpus v1.17.0
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling crypto-common v0.1.7
[INFO] [stderr]    Compiling openssl-sys v0.9.111
[INFO] [stderr]    Compiling libsqlite3-sys v0.30.1
[INFO] [stderr]    Compiling stacker v0.1.23
[INFO] [stderr]    Compiling password-hash v0.5.0
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling universal-hash v0.5.1
[INFO] [stderr]    Compiling cipher v0.4.4
[INFO] [stderr]    Compiling polyval v0.6.2
[INFO] [stderr]    Compiling blake2 v0.10.6
[INFO] [stderr]    Compiling aes v0.8.4
[INFO] [stderr]    Compiling ctr v0.9.2
[INFO] [stderr]    Compiling ghash v0.5.1
[INFO] [stderr]    Compiling aead v0.5.2
[INFO] [stderr]    Compiling argon2 v0.5.3
[INFO] [stderr]    Compiling sha1 v0.10.6
[INFO] [stderr]    Compiling hmac v0.12.1
[INFO] [stderr]    Compiling uuid v1.21.0
[INFO] [stderr]    Compiling hkdf v0.12.4
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling aes-gcm v0.10.3
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling ar_archive_writer v0.5.1
[INFO] [stderr]    Compiling zeroize_derive v1.4.3
[INFO] [stderr]    Compiling tokio-macros v2.6.0
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling psm v0.1.30
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling zeroize v1.8.2
[INFO] [stderr]    Compiling rustls-pki-types v1.14.0
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling tokio v1.49.0
[INFO] [stderr]    Compiling hashbrown v0.14.5
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling webpki-roots v1.0.6
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling pin-project-internal v1.1.10
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling curve25519-dalek-derive v0.1.1
[INFO] [stderr]    Compiling webpki-roots v0.26.11
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling yoke v0.8.1
[INFO] [stderr]    Compiling hashlink v0.9.1
[INFO] [stderr]    Compiling chumsky v0.9.3
[INFO] [stderr]    Compiling zerovec v0.11.5
[INFO] [stderr]    Compiling zerotrie v0.2.3
[INFO] [stderr]    Compiling pin-project v1.1.10
[INFO] [stderr]    Compiling tinystr v0.8.2
[INFO] [stderr]    Compiling potential_utf v0.1.4
[INFO] [stderr]    Compiling icu_collections v2.1.1
[INFO] [stderr]    Compiling icu_locale_core v2.1.1
[INFO] [stderr]    Compiling rustls-webpki v0.103.9
[INFO] [stderr]    Compiling instant-distance v0.6.1
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling polling v3.11.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling async-io v2.6.0
[INFO] [stderr]    Compiling icu_provider v2.1.1
[INFO] [stderr]    Compiling x25519-dalek v2.0.1
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling async-signal v0.2.13
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling icu_normalizer v2.1.1
[INFO] [stderr]    Compiling icu_properties v2.1.2
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling async-process v2.5.0
[INFO] [stderr]    Compiling async-std v1.13.2
[INFO] [stderr]    Compiling futures-executor v0.3.32
[INFO] [stderr]    Compiling futures v0.3.32
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling async-imap v0.10.4
[INFO] [stderr]    Compiling async-native-tls v0.5.0
[INFO] [stderr]    Compiling ironclad-core v0.9.7
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tokio-native-tls v0.3.1
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling tungstenite v0.24.0
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling lettre v0.11.19
[INFO] [stderr]    Compiling h2 v0.4.13
[INFO] [stderr]    Compiling tokio-tungstenite v0.24.0
[INFO] [stderr]    Compiling rusqlite v0.32.1
[INFO] [stderr]    Compiling ironclad-db v0.9.7
[INFO] [stderr]    Compiling hyper v1.8.1
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling hyper-tls v0.6.0
[INFO] [stderr]    Compiling hyper-rustls v0.27.7
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling ironclad-channels v0.9.7 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 47s
[INFO] running `Command { std: "docker" "inspect" "26fa1fbd7a4a9db542f69d0b3b19029c72b68d4c62016ee3d8d33deb0dd1f29c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "26fa1fbd7a4a9db542f69d0b3b19029c72b68d4c62016ee3d8d33deb0dd1f29c", kill_on_drop: false }`
[INFO] [stdout] 26fa1fbd7a4a9db542f69d0b3b19029c72b68d4c62016ee3d8d33deb0dd1f29c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 5bdaec3ecd64ddba32a659ea4d566b79956a6bdea704abfe6ed06b8148ec0ac7
[INFO] running `Command { std: "docker" "start" "-a" "5bdaec3ecd64ddba32a659ea4d566b79956a6bdea704abfe6ed06b8148ec0ac7", kill_on_drop: false }`
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling wait-timeout v0.2.1
[INFO] [stderr]    Compiling bit-vec v0.8.0
[INFO] [stderr]    Compiling unarray v0.1.4
[INFO] [stderr]    Compiling regex-syntax v0.8.9
[INFO] [stderr]    Compiling rand_core v0.9.5
[INFO] [stderr]    Compiling bit-set v0.8.0
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling rand v0.9.2
[INFO] [stderr]    Compiling rand_xorshift v0.4.0
[INFO] [stderr]    Compiling polling v3.11.0
[INFO] [stderr]    Compiling tempfile v3.25.0
[INFO] [stderr]    Compiling rusty-fork v0.3.1
[INFO] [stderr]    Compiling async-io v2.6.0
[INFO] [stderr]    Compiling proptest v1.10.0
[INFO] [stderr]    Compiling async-signal v0.2.13
[INFO] [stderr]    Compiling async-process v2.5.0
[INFO] [stderr]    Compiling async-std v1.13.2
[INFO] [stderr]    Compiling async-imap v0.10.4
[INFO] [stderr]    Compiling ironclad-channels v0.9.7 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 31.30s
[INFO] running `Command { std: "docker" "inspect" "5bdaec3ecd64ddba32a659ea4d566b79956a6bdea704abfe6ed06b8148ec0ac7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5bdaec3ecd64ddba32a659ea4d566b79956a6bdea704abfe6ed06b8148ec0ac7", kill_on_drop: false }`
[INFO] [stdout] 5bdaec3ecd64ddba32a659ea4d566b79956a6bdea704abfe6ed06b8148ec0ac7
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 1c0a24e1926f6ad561842733afc9dba0b7ccdcc5df170ae2f675fc64263bca42
[INFO] running `Command { std: "docker" "start" "-a" "1c0a24e1926f6ad561842733afc9dba0b7ccdcc5df170ae2f675fc64263bca42", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.38s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/ironclad_channels-3f10a50b707d3c21)
[INFO] [stdout] 
[INFO] [stdout] running 513 tests
[INFO] [stdout] test a2a::tests::aes256gcm_encrypt_decrypt_roundtrip ... ok
[INFO] [stdout] test a2a::tests::encrypt_decrypt_empty_plaintext ... ok
[INFO] [stdout] test a2a::tests::decrypt_ciphertext_too_short ... ok
[INFO] [stdout] test a2a::tests::insert_and_get_session ... ok
[INFO] [stdout] test a2a::tests::get_session_mut_updates ... ok
[INFO] [stdout] test a2a::tests::generate_hello_has_timestamp ... ok
[INFO] [stdout] test a2a::tests::message_size_validation ... ok
[INFO] [stdout] test a2a::tests::nonce_accepted_after_manual_expiry ... ok
[INFO] [stdout] test a2a::tests::nonce_replay_rejected ... ok
[INFO] [stdout] test a2a::tests::rate_limit_allows_within_threshold ... ok
[INFO] [stdout] test a2a::tests::nonce_eviction_bounds_memory ... ok
[INFO] [stdout] test a2a::tests::key_agreement_produces_matching_session_keys ... ok
[INFO] [stdout] test a2a::tests::rate_limit_per_peer_isolation ... ok
[INFO] [stdout] test a2a::tests::session_is_established ... ok
[INFO] [stdout] test a2a::tests::rate_limit_zero_means_unlimited ... ok
[INFO] [stdout] test a2a::tests::remove_session ... ok
[INFO] [stdout] test a2a::tests::remove_session_nonexistent ... ok
[INFO] [stdout] test a2a::tests::session_count_empty ... ok
[INFO] [stdout] test a2a::tests::timestamp_validation_fresh_and_stale ... ok
[INFO] [stdout] test a2a::tests::tampered_ciphertext_fails_decryption ... ok
[INFO] [stdout] test a2a::tests::rate_limit_blocks_excess ... ok
[INFO] [stdout] test a2a::tests::timestamp_validation_at_boundary ... ok
[INFO] [stdout] test a2a::tests::get_session_nonexistent ... ok
[INFO] [stdout] test a2a::tests::verify_hello_missing_did ... ok
[INFO] [stdout] test a2a::tests::verify_hello_missing_nonce ... ok
[INFO] [stdout] test a2a::tests::verify_hello_wrong_type ... ok
[INFO] [stdout] test delivery::tests::backoff_delay_high_attempt ... ok
[INFO] [stdout] test a2a::tests::wrong_key_fails_decryption ... ok
[INFO] [stdout] test delivery::tests::dead_letters_from_store_no_store ... ok
[INFO] [stdout] test a2a::tests::validate_message_size_at_boundary ... ok
[INFO] [stdout] test delivery::tests::backoff_delays ... ok
[INFO] [stdout] test a2a::tests::verify_hello_missing_type ... ok
[INFO] [stdout] test delivery::tests::delivery_item_clone_and_debug ... ok
[INFO] [stdout] test delivery::tests::delivery_item_new ... ok
[INFO] [stdout] test delivery::tests::dead_letter_after_max_attempts ... ok
[INFO] [stdout] test delivery::tests::delivery_status_serde_roundtrip ... ok
[INFO] [stdout] test delivery::tests::from_record_empty_idempotency_key_falls_back_to_id ... ok
[INFO] [stdout] test delivery::tests::dead_letters_accessor ... ok
[INFO] [stdout] test delivery::tests::empty_queue_returns_none ... ok
[INFO] [stdout] test delivery::tests::from_store_status_mappings ... ok
[INFO] [stdout] test delivery::tests::is_ready_checks_status_and_time ... ok
[INFO] [stdout] test delivery::tests::mark_delivered ... ok
[INFO] [stdout] test delivery::tests::mark_failed_permanent_dead_letters_immediately ... ok
[INFO] [stdout] test delivery::tests::mark_failed_max_attempts_dead_letters ... ok
[INFO] [stdout] test delivery::tests::mark_failed_transient_requeues ... ok
[INFO] [stdout] test a2a::tests::validate_message_size_error_message ... ok
[INFO] [stdout] test delivery::tests::enqueue_and_dequeue ... ok
[INFO] [stdout] test delivery::tests::permanent_error_detected ... ok
[INFO] [stdout] test a2a::tests::verify_hello_empty_did ... ok
[INFO] [stdout] test delivery::tests::persist_item_without_store_is_noop ... ok
[INFO] [stdout] test delivery::tests::mark_success_without_store ... ok
[INFO] [stdout] test delivery::tests::permanent_error_dead_letters_on_first_requeue ... ok
[INFO] [stdout] test a2a::tests::generate_hello_nonce_hex_encoding ... ok
[INFO] [stdout] test delivery::tests::pending_count_filters_correctly ... ok
[INFO] [stdout] test delivery::tests::replay_dead_letter_in_memory_nonexistent ... ok
[INFO] [stdout] test delivery::tests::recover_from_store_without_store_is_noop ... ok
[INFO] [stdout] test delivery::tests::replay_dead_letter_in_memory_success ... ok
[INFO] [stdout] test a2a::tests::rate_limit_stale_entry_eviction ... ok
[INFO] [stdout] test delivery::tests::replay_dead_letter_in_store_no_store ... ok
[INFO] [stdout] test a2a::tests::insert_session_evicts_oldest_when_full ... ok
[INFO] [stdout] test a2a::tests::session_not_established_without_key ... ok
[INFO] [stdout] test a2a::tests::encrypt_decrypt_large_plaintext ... ok
[INFO] [stdout] test delivery::tests::to_record_and_from_record_roundtrip ... ok
[INFO] [stdout] test delivery::tests::transient_error_not_permanent ... ok
[INFO] [stdout] test delivery::tests::to_store_status_mappings ... ok
[INFO] [stdout] test delivery::tests::proptest_is_permanent_error_false_for_empty ... ok
[INFO] [stdout] test a2a::tests::hello_generation_and_verification ... ok
[INFO] [stdout] test delivery::tests::requeue_with_backoff ... ok
[INFO] [stdout] test delivery::tests::delivery_queue_default ... ok
[INFO] [stdout] test delivery::tests::proptest_backoff_delay_is_monotonic ... ok
[INFO] [stdout] test discord::tests::chunk_message_empty ... ok
[INFO] [stdout] test delivery::tests::proptest_backoff_delay_zero_is_zero ... ok
[INFO] [stdout] test discord::tests::chunk_message_exact_boundary ... ok
[INFO] [stdout] test discord::tests::chunk_message_no_whitespace_hard_split ... ok
[INFO] [stdout] test discord::tests::chunk_message_prefers_newline ... ok
[INFO] [stdout] test discord::tests::chunk_message_long ... ok
[INFO] [stdout] test discord::tests::chunk_message_short ... ok
[INFO] [stdout] test discord::tests::chunk_message_unicode_boundary ... ok
[INFO] [stdout] test discord::tests::close_code_classification_exhaustive ... ok
[INFO] [stdout] test delivery::tests::store_backed_next_ready_marks_in_flight ... ok
[INFO] [stdout] test delivery::tests::proptest_is_permanent_error_false_for_transient ... ok
[INFO] [stdout] test discord::tests::dispatch_sequence_tracking_increments ... ok
[INFO] [stdout] test discord::tests::extract_heartbeat_interval_from_hello ... ok
[INFO] [stdout] test discord::tests::extract_heartbeat_interval_missing ... ok
[INFO] [stdout] test discord::tests::extract_heartbeat_interval_missing_d ... ok
[INFO] [stdout] test discord::tests::fatal_close_codes ... ok
[INFO] [stdout] test discord::tests::gateway_connection_clear_session_resets_all ... ok
[INFO] [stdout] test discord::tests::gateway_connection_default ... ok
[INFO] [stdout] test discord::tests::gateway_connection_heartbeat_acked_tracking ... ok
[INFO] [stdout] test discord::tests::gateway_connection_heartbeat_interval_get_set ... ok
[INFO] [stdout] test delivery::tests::store_backed_dead_letters_from_store ... ok
[INFO] [stdout] test delivery::tests::store_backed_replay_dead_letter ... ok
[INFO] [stdout] test delivery::tests::store_backed_mark_success ... ok
[INFO] [stdout] test discord::tests::gateway_connection_resume_url_storage ... ok
[INFO] [stdout] test discord::tests::gateway_connection_set_sequence_none ... ok
[INFO] [stdout] test discord::tests::gateway_connection_state ... ok
[INFO] [stdout] test discord::tests::gateway_opcode_extracts_op ... ok
[INFO] [stdout] test discord::tests::gateway_opcode_missing ... ok
[INFO] [stdout] test delivery::tests::store_backed_queue_recovers_items ... ok
[INFO] [stdout] test discord::tests::build_identify_has_token_and_intents ... ok
[INFO] [stdout] test discord::tests::build_heartbeat_null_sequence ... ok
[INFO] [stdout] test discord::tests::invalid_session_non_resumable_clears_state ... ok
[INFO] [stdout] test discord::tests::invalid_session_resumable_preserves_state ... ok
[INFO] [stdout] test discord::tests::is_fatal_close_all_codes ... ok
[INFO] [stdout] test discord::tests::is_resumable_close_all_codes ... ok
[INFO] [stdout] test discord::tests::build_identify_properties ... ok
[INFO] [stdout] test discord::tests::build_identify_intents_include_guild_messages ... ok
[INFO] [stdout] test discord::tests::build_heartbeat_with_sequence ... ok
[INFO] [stdout] test discord::tests::build_resume_payload ... ok
[INFO] [stdout] test discord::tests::build_resume_includes_token ... ok
[INFO] [stdout] test discord::tests::buffer_handle_returns_shared_buffer ... ok
[INFO] [stdout] test discord::tests::dispatch_bot_message_filtered_in_pipeline ... ok
[INFO] [stdout] test discord::tests::guild_allowed_filters_with_deny_on_empty ... ok
[INFO] [stdout] test discord::tests::guild_allowed_filters ... ok
[INFO] [stdout] test discord::tests::dispatch_message_create_full_pipeline ... ok
[INFO] [stdout] test discord::tests::guild_allowed_empty_secure_denies_all ... ok
[INFO] [stdout] test discord::tests::guild_allowed_empty_default_denies_all ... ok
[INFO] [stdout] test discord::tests::dispatch_ready_extracts_session_and_resume_url ... ok
[INFO] [stdout] test discord::tests::new_adapter_defaults ... ok
[INFO] [stdout] test discord::tests::parse_dispatch_missing_t ... ok
[INFO] [stdout] test discord::tests::identify_vs_resume_decision ... ok
[INFO] [stdout] test discord::tests::parse_dispatch_extracts_event ... ok
[INFO] [stdout] test discord::tests::parse_dispatch_missing_d ... ok
[INFO] [stdout] test discord::tests::parse_message_create_empty_attachments_array ... ok
[INFO] [stdout] test discord::tests::parse_message_create_extracts_attachments ... ok
[INFO] [stdout] test discord::tests::parse_message_create_missing_author ... ok
[INFO] [stdout] test discord::tests::parse_message_create_skips_bots ... ok
[INFO] [stdout] test discord::tests::parse_message_create_no_attachments_no_key ... ok
[INFO] [stdout] test discord::tests::parse_dispatch_without_sequence ... ok
[INFO] [stdout] test discord::tests::get_gateway_url_network_error ... ok
[INFO] [stdout] test discord::tests::parse_message_create_bot_false_passes ... ok
[INFO] [stdout] test discord::tests::resumable_close_codes ... ok
[INFO] [stdout] test discord::tests::parse_message_create_no_guild_id_passes_through ... ok
[INFO] [stdout] test discord::tests::parse_message_create_missing_id_generates_uuid ... ok
[INFO] [stdout] test discord::tests::parse_message_create_unknown_author_id ... ok
[INFO] [stdout] test discord::tests::parse_message_create_allowed_guild ... ok
[INFO] [stdout] test discord::tests::parse_message_create_missing_content_field ... ok
[INFO] [stdout] test discord::tests::parse_message_create_no_bot_field ... ok
[INFO] [stdout] test email::tests::buffer_handle_shared ... ok
[INFO] [stdout] test email::tests::buffer_push_and_recv ... ok
[INFO] [stdout] test discord::tests::parse_message_create_filters_guild ... ok
[INFO] [stdout] test discord::tests::parse_message_create_metadata_has_channel_id ... ok
[INFO] [stdout] test email::tests::format_reply_has_required_fields ... ok
[INFO] [stdout] test email::tests::is_sender_allowed_case_insensitive ... ok
[INFO] [stdout] test email::tests::is_sender_allowed_empty_default_denies_all ... ok
[INFO] [stdout] test email::tests::is_sender_allowed_empty_secure_denies_all ... ok
[INFO] [stdout] test email::tests::is_sender_allowed_filters ... ok
[INFO] [stdout] test email::tests::is_sender_allowed_filters_with_deny_on_empty ... ok
[INFO] [stdout] test email::tests::is_sender_allowed_static_cases ... ok
[INFO] [stdout] test email::tests::parse_email_empty_body_with_subject ... ok
[INFO] [stdout] test email::tests::parse_email_empty_both ... ok
[INFO] [stdout] test email::tests::parse_email_large_body_at_boundary ... ok
[INFO] [stdout] test email::tests::format_reply_without_in_reply_to ... ok
[INFO] [stdout] test email::tests::parse_email_truncates_multibyte_body ... ok
[INFO] [stdout] test email::tests::parse_email_truncates_large_body ... ok
[INFO] [stdout] test email::tests::parse_email_with_message_id_and_in_reply_to ... ok
[INFO] [stdout] test email::tests::parse_email_with_subject ... ok
[INFO] [stdout] test email::tests::parse_email_without_subject ... ok
[INFO] [stdout] test email::tests::platform_name_is_email ... ok
[INFO] [stdout] test email::tests::recv_empty_buffer_returns_none ... ok
[INFO] [stdout] test email::tests::recv_returns_buffered_message ... ok
[INFO] [stdout] test email::tests::recv_returns_none_when_buffer_empty ... ok
[INFO] [stdout] test email::tests::rfc5322_attachment_metadata ... ok
[INFO] [stdout] test email::tests::builder_methods ... ok
[INFO] [stdout] test email::tests::parse_email_without_message_id ... ok
[INFO] [stdout] test email::tests::rfc5322_garbage_bytes_returns_none ... ok
[INFO] [stdout] test email::tests::rfc5322_dkim_signature_detection ... ok
[INFO] [stdout] test email::tests::rfc5322_body_truncation ... ok
[INFO] [stdout] test email::tests::rfc5322_no_body_returns_empty_content ... ok
[INFO] [stdout] test email::tests::rfc5322_html_body_fallback ... ok
[INFO] [stdout] test email::tests::rfc5322_no_from_address_returns_none ... ok
[INFO] [stdout] test email::tests::rfc5322_multipart_alternative_prefers_plain ... ok
[INFO] [stdout] test email::tests::rfc5322_parse_plain_text ... ok
[INFO] [stdout] test email::tests::rfc5322_sender_filtering_deny_on_empty ... ok
[INFO] [stdout] test email::tests::rfc5322_thread_id_from_in_reply_to ... ok
[INFO] [stdout] test email::tests::rfc5322_sender_filtering_allowed_list ... ok
[INFO] [stdout] test email::tests::send_fails_with_smtp_error ... ok
[INFO] [stdout] test email::tests::rfc5322_thread_id_from_message_id_only ... ok
[INFO] [stdout] test email::tests::send_with_invalid_from_address ... ok
[INFO] [stdout] test email::tests::send_with_in_reply_to ... ok
[INFO] [stdout] test email::tests::thread_id_default ... ok
[INFO] [stdout] test email::tests::strip_html_tags_basic ... ok
[INFO] [stdout] test email::tests::thread_id_from_in_reply_to ... ok
[INFO] [stdout] test email::tests::xoauth2_token_format ... ok
[INFO] [stdout] test email::tests::send_with_invalid_to_address ... ok
[INFO] [stdout] test filter::tests::conversation_filter_accepts_dm ... ok
[INFO] [stdout] test filter::tests::conversation_filter_accepts_no_metadata ... ok
[INFO] [stdout] test filter::tests::conversation_filter_name ... ok
[INFO] [stdout] test filter::tests::conversation_filter_no_is_group_key ... ok
[INFO] [stdout] test filter::tests::conversation_filter_rejects_group ... ok
[INFO] [stdout] test filter::tests::default_chain_accepts_dm ... ok
[INFO] [stdout] test filter::tests::default_chain_accepts_mention ... ok
[INFO] [stdout] test filter::tests::default_chain_accepts_reply ... ok
[INFO] [stdout] test filter::tests::default_chain_has_three_filters ... ok
[INFO] [stdout] test filter::tests::default_chain_rejects_group_no_mention_no_reply ... ok
[INFO] [stdout] test filter::tests::filter_chain_default_is_empty ... ok
[INFO] [stdout] test filter::tests::filter_chain_empty_passes_all ... ok
[INFO] [stdout] test filter::tests::filter_chain_filters_accessor ... ok
[INFO] [stdout] test filter::tests::filter_chain_or_logic ... ok
[INFO] [stdout] test filter::tests::filter_chain_rejects_when_none_match ... ok
[INFO] [stdout] test filter::tests::is_group_message_false ... ok
[INFO] [stdout] test filter::tests::is_group_message_no_is_group_key ... ok
[INFO] [stdout] test filter::tests::is_group_message_no_metadata ... ok
[INFO] [stdout] test filter::tests::is_group_message_true ... ok
[INFO] [stdout] test filter::tests::mention_filter_case_insensitive ... ok
[INFO] [stdout] test filter::tests::mention_filter_matches_name ... ok
[INFO] [stdout] test filter::tests::mention_filter_name ... ok
[INFO] [stdout] test filter::tests::mention_filter_partial_match ... ok
[INFO] [stdout] test filter::tests::mention_filter_rejects_no_mention ... ok
[INFO] [stdout] test filter::tests::reply_filter_matches_reply ... ok
[INFO] [stdout] test filter::tests::reply_filter_name ... ok
[INFO] [stdout] test filter::tests::reply_filter_no_metadata ... ok
[INFO] [stdout] test filter::tests::reply_filter_no_reply_to_bot_key ... ok
[INFO] [stdout] test filter::tests::reply_filter_rejects_non_reply ... ok
[INFO] [stdout] test formatter::tests::collapse_blanks ... ok
[INFO] [stdout] test formatter::tests::discord_preserves_markdown ... ok
[INFO] [stdout] test formatter::tests::discord_strips_metadata ... ok
[INFO] [stdout] test formatter::tests::email_preserves_markdown_strips_citations ... ok
[INFO] [stdout] test formatter::tests::empty_input ... ok
[INFO] [stdout] test formatter::tests::formatter_for_known_platforms ... ok
[INFO] [stdout] test formatter::tests::formatter_for_unknown_falls_back_to_web ... ok
[INFO] [stdout] test formatter::tests::parse_link_nested_parens ... ok
[INFO] [stdout] test formatter::tests::signal_indents_code_blocks ... ok
[INFO] [stdout] test formatter::tests::signal_links_become_bare_urls ... ok
[INFO] [stdout] test formatter::tests::signal_strips_all_formatting ... ok
[INFO] [stdout] test formatter::tests::strip_citations_removes_numeric_brackets ... ok
[INFO] [stdout] test formatter::tests::strip_markdown_links_extracts_urls ... ok
[INFO] [stdout] test formatter::tests::strip_markdown_links_preserves_non_links ... ok
[INFO] [stdout] test formatter::tests::strip_metadata_removes_delegation_lines ... ok
[INFO] [stdout] test email::tests::thread_id_from_message_id ... ok
[INFO] [stdout] test formatter::tests::telegram_blockquote ... ok
[INFO] [stdout] test email::tests::xoauth2_token_with_empty_inputs ... ok
[INFO] [stdout] test formatter::tests::telegram_bold_conversion ... ok
[INFO] [stdout] test formatter::tests::telegram_double_underscore_italic ... ok
[INFO] [stdout] test formatter::tests::telegram_combined_formatting ... ok
[INFO] [stdout] test formatter::tests::telegram_empty_blockquote ... ok
[INFO] [stdout] test formatter::tests::telegram_escapes_special_chars ... ok
[INFO] [stdout] test formatter::tests::telegram_inline_code ... ok
[INFO] [stdout] test formatter::tests::telegram_mixed_formatting ... ok
[INFO] [stdout] test formatter::tests::telegram_preserves_code_blocks ... ok
[INFO] [stdout] test formatter::tests::telegram_single_tilde_strikethrough ... ok
[INFO] [stdout] test formatter::tests::telegram_single_underscore_italic ... ok
[INFO] [stdout] test formatter::tests::telegram_strikethrough_conversion ... ok
[INFO] [stdout] test formatter::tests::telegram_strips_citations ... ok
[INFO] [stdout] test formatter::tests::telegram_strips_metadata ... ok
[INFO] [stdout] test formatter::tests::unclosed_code_fence ... ok
[INFO] [stdout] test formatter::tests::web_preserves_everything ... ok
[INFO] [stdout] test formatter::tests::web_strips_metadata_only ... ok
[INFO] [stdout] test formatter::tests::whatsapp_bold_conversion ... ok
[INFO] [stdout] test formatter::tests::telegram_link_conversion ... ok
[INFO] [stdout] test formatter::tests::telegram_headers_become_bold ... ok
[INFO] [stdout] test discord::tests::platform_name_is_discord ... ok
[INFO] [stdout] test discord::tests::parse_message_create_skips_empty ... ok
[INFO] [stdout] test formatter::tests::whatsapp_headers_become_bold ... ok
[INFO] [stdout] test formatter::tests::whatsapp_inline_code_triple_backtick ... ok
[INFO] [stdout] test formatter::tests::whatsapp_links_become_bare_urls ... ok
[INFO] [stdout] test media::tests::media_attachment_serde_roundtrip ... ok
[INFO] [stdout] test media::tests::media_attachment_skips_none_fields ... ok
[INFO] [stdout] test media::tests::media_type_from_content_type_audio ... ok
[INFO] [stdout] test media::tests::media_type_from_content_type_document ... ok
[INFO] [stdout] test media::tests::media_type_from_content_type_image ... ok
[INFO] [stdout] test media::tests::media_type_from_content_type_video ... ok
[INFO] [stdout] test media::tests::sanitize_filename_empty_becomes_attachment ... ok
[INFO] [stdout] test media::tests::sanitize_filename_preserves_normal_names ... ok
[INFO] [stdout] test media::tests::sanitize_filename_removes_nulls_and_control ... ok
[INFO] [stdout] test media::tests::sanitize_filename_truncates_long_names ... ok
[INFO] [stdout] test media::tests::validate_remote_url_allows_public_https ... ok
[INFO] [stdout] test media::tests::sanitize_filename_removes_path_separators ... ok
[INFO] [stdout] test media::tests::validate_remote_url_rejects_local_targets ... ok
[INFO] [stdout] test router::tests::channel_names ... ok
[INFO] [stdout] test router::tests::channel_names_list ... ok
[INFO] [stdout] test router::tests::channel_status_fields ... ok
[INFO] [stdout] test router::tests::dead_letters_empty ... ok
[INFO] [stdout] test router::tests::dead_letters_returns_from_memory ... ok
[INFO] [stdout] test router::tests::default_router ... ok
[INFO] [stdout] test router::tests::delivery_queue_accessor ... ok
[INFO] [stdout] test router::tests::drain_retry_queue_empty_is_noop ... ok
[INFO] [stdout] test router::tests::drain_retry_queue_successful_delivery ... ok
[INFO] [stdout] test router::tests::drain_retry_queue_transient_failure ... ok
[INFO] [stdout] test router::tests::drain_retry_queue_with_missing_channel_dead_letters ... ok
[INFO] [stdout] test router::tests::is_registered_after_register ... ok
[INFO] [stdout] test router::tests::poll_all_receives_messages ... ok
[INFO] [stdout] test router::tests::channel_status_serde ... ok
[INFO] [stdout] test router::tests::poll_all_records_recv_error ... ok
[INFO] [stdout] test router::tests::poll_all_sanitizes_inbound_messages ... ok
[INFO] [stdout] test router::tests::record_processing_error_nonexistent_channel_noop ... ok
[INFO] [stdout] test router::tests::drain_retry_queue_permanent_failure_dead_letters ... ok
[INFO] [stdout] test router::tests::poll_updates_status ... ok
[INFO] [stdout] test router::tests::record_received_nonexistent_channel_noop ... ok
[INFO] [stdout] test router::tests::record_received_updates_status ... ok
[INFO] [stdout] test router::tests::record_processing_error_updates_status ... ok
[INFO] [stdout] test router::tests::register_and_count ... ok
[INFO] [stdout] test router::tests::replay_dead_letter_from_memory ... ok
[INFO] [stdout] test router::tests::replay_dead_letter_nonexistent_returns_false ... ok
[INFO] [stdout] test router::tests::send_reply_to_nonexistent_channel ... ok
[INFO] [stdout] test router::tests::send_reply_convenience ... ok
[INFO] [stdout] test router::tests::send_to_transient_error_enqueues_retry ... ok
[INFO] [stdout] test router::tests::send_to_permanent_error_does_not_enqueue_retry ... ok
[INFO] [stdout] test router::tests::send_to_transient_error_records_last_error ... ok
[INFO] [stdout] test router::tests::send_to_unknown_channel_fails ... ok
[INFO] [stdout] test router::tests::poll_all_clears_error_on_success ... ok
[INFO] [stdout] test router::tests::send_to_known_channel ... ok
[INFO] [stdout] test discord::tests::push_and_recv_message ... ok
[INFO] [stdout] test signal::tests::parse_inbound_empty_message_returns_none ... ok
[INFO] [stdout] test signal::tests::parse_inbound_id_format ... ok
[INFO] [stdout] test signal::tests::parse_inbound_metadata_preserved ... ok
[INFO] [stdout] test signal::tests::parse_inbound_no_data_message_returns_none ... ok
[INFO] [stdout] test signal::tests::parse_inbound_no_message_field_defaults_empty ... ok
[INFO] [stdout] test signal::tests::parse_inbound_no_timestamp_defaults_zero ... ok
[INFO] [stdout] test signal::tests::parse_inbound_source_fallback ... ok
[INFO] [stdout] test signal::tests::parse_inbound_unknown_sender ... ok
[INFO] [stdout] test signal::tests::parse_inbound_valid_message ... ok
[INFO] [stdout] test media::tests::media_service_max_size_for ... ok
[INFO] [stdout] test router::tests::with_store_recovers_queue_state ... ok
[INFO] [stdout] test discord::tests::parse_message_create_valid ... ok
[INFO] [stdout] test signal::tests::new_adapter_defaults ... ok
[INFO] [stdout] test discord::tests::recv_returns_buffered_message ... ok
[INFO] [stdout] test signal::tests::platform_name_is_signal ... ok
[INFO] [stdout] test discord::tests::recv_returns_none_when_buffer_empty ... ok
[INFO] [stdout] test discord::tests::push_multiple_messages_fifo ... ok
[INFO] [stdout] test discord::tests::with_config_sets_guilds ... ok
[INFO] [stdout] test signal::tests::process_envelope_returns_none_for_no_data_message ... ok
[INFO] [stdout] test discord::tests::send_typing_best_effort_no_panic ... ok
[INFO] [stdout] test discord::tests::send_trait_impl_long_message_network_error ... ok
[INFO] [stdout] test signal::tests::process_envelope_filters_disallowed ... ok
[INFO] [stdout] test signal::tests::new_adapter_fields ... ok
[INFO] [stdout] test discord::tests::send_message_network_error ... ok
[INFO] [stdout] test signal::tests::process_envelope_returns_none_for_empty_message ... ok
[INFO] [stdout] test signal::tests::rpc_url_returns_daemon_url ... ok
[INFO] [stdout] test discord::tests::send_ephemeral_returns_none_on_failure ... ok
[INFO] [stdout] test signal::tests::process_envelope_passes_allowed ... ok
[INFO] [stdout] test discord::tests::send_trait_impl_network_error ... ok
[INFO] [stdout] test signal::tests::with_config_multiple_allowed_numbers ... ok
[INFO] [stdout] test signal::tests::sender_allowed_filters ... ok
[INFO] [stdout] test signal::tests::with_config_sets_fields ... ok
[INFO] [stdout] test telegram::tests::chunk_message_empty_string ... ok
[INFO] [stdout] test telegram::tests::chunk_message_exact_boundary ... ok
[INFO] [stdout] test telegram::tests::chunk_message_multiple_splits ... ok
[INFO] [stdout] test telegram::tests::chunk_message_no_whitespace_forces_hard_split ... ok
[INFO] [stdout] test telegram::tests::chunk_message_single_word_over_limit ... ok
[INFO] [stdout] test telegram::tests::chunk_message_splits_on_word_boundary ... ok
[INFO] [stdout] test telegram::tests::chunk_message_unicode ... ok
[INFO] [stdout] test signal::tests::push_and_recv_message ... ok
[INFO] [stdout] test signal::tests::json_rpc_network_error ... ok
[INFO] [stdout] test telegram::tests::api_url_formats_correctly ... ok
[INFO] [stdout] test signal::tests::sender_allowed_empty_secure_denies_all ... ok
[INFO] [stdout] test telegram::tests::format_outbound_with_special_characters ... ok
[INFO] [stdout] test telegram::tests::format_outbound_produces_valid_json ... ok
[INFO] [stdout] test signal::tests::sender_allowed_empty_default_denies_all ... ok
[INFO] [stdout] test signal::tests::push_multiple_messages_fifo ... ok
[INFO] [stdout] test telegram::tests::parse_inbound_from_fixture ... ok
[INFO] [stdout] test telegram::tests::parse_inbound_message_with_only_from_id ... ok
[INFO] [stdout] test telegram::tests::parse_inbound_missing_from ... ok
[INFO] [stdout] test telegram::tests::parse_inbound_missing_from_id ... ok
[INFO] [stdout] test telegram::tests::parse_inbound_missing_message ... ok
[INFO] [stdout] test telegram::tests::parse_inbound_no_message_id_generates_uuid ... ok
[INFO] [stdout] test telegram::tests::parse_inbound_no_text_defaults_empty ... ok
[INFO] [stdout] test telegram::tests::parse_inbound_preserves_metadata ... ok
[INFO] [stdout] test telegram::tests::api_url_various_methods ... ok
[INFO] [stdout] test telegram::tests::message_buffer_is_empty_initially ... ok
[INFO] [stdout] test telegram::tests::chat_allowed_empty_default_denies_all ... ok
[INFO] [stdout] test telegram::tests::chat_allowed_empty_secure_denies_all ... ok
[INFO] [stdout] test signal::tests::send_text_network_error ... ok
[INFO] [stdout] test signal::tests::send_ephemeral_returns_none_on_failure ... ok
[INFO] [stdout] test telegram::tests::last_update_id_starts_at_zero ... ok
[INFO] [stdout] test telegram::tests::platform_name_is_telegram ... ok
[INFO] [stdout] test telegram::tests::chat_allowed_filters ... ok
[INFO] [stdout] test telegram::tests::process_webhook_update_without_update_id ... ok
[INFO] [stdout] test telegram::tests::process_webhook_update_advances_id_without_rewinding ... ok
[INFO] [stdout] test telegram::tests::delete_message_best_effort_no_panic ... ok
[INFO] [stdout] test telegram::tests::strip_mdv2_escapes_removes_backslashes ... ok
[INFO] [stdout] test telegram::tests::new_adapter_defaults ... ok
[INFO] [stdout] test telegram::tests::process_webhook_update_disallowed_chat ... ok
[INFO] [stdout] test telegram::tests::process_webhook_update_no_message ... ok
[INFO] [stdout] test tests::inbound_message_clone ... ok
[INFO] [stdout] test tests::inbound_message_debug ... ok
[INFO] [stdout] test tests::inbound_message_empty_content ... ok
[INFO] [stdout] test tests::inbound_message_empty_platform_name_works ... ok
[INFO] [stdout] test tests::inbound_message_oversized_100kb_handled_gracefully ... ok
[INFO] [stdout] test tests::inbound_message_oversized_content ... ok
[INFO] [stdout] test tests::inbound_message_roundtrip ... ok
[INFO] [stdout] test tests::inbound_message_sanitize_long_platform ... ok
[INFO] [stdout] test tests::inbound_message_sanitize_method ... ok
[INFO] [stdout] test tests::inbound_message_special_chars_in_platform ... ok
[INFO] [stdout] test tests::outbound_message_clone ... ok
[INFO] [stdout] test tests::outbound_message_serialization ... ok
[INFO] [stdout] test tests::outbound_message_with_metadata ... ok
[INFO] [stdout] test tests::sanitize_platform_exact_max_len ... ok
[INFO] [stdout] test tests::sanitize_platform_mixed_control_and_printable ... ok
[INFO] [stdout] test tests::sanitize_platform_one_over_max_len ... ok
[INFO] [stdout] test tests::sanitize_platform_only_control_chars ... ok
[INFO] [stdout] test tests::sanitize_platform_passes_clean_input ... ok
[INFO] [stdout] test tests::sanitize_platform_strips_control_chars ... ok
[INFO] [stdout] test tests::sanitize_platform_truncates_long_input ... ok
[INFO] [stdout] test voice::tests::audio_format_copy ... ok
[INFO] [stdout] test voice::tests::audio_format_display ... ok
[INFO] [stdout] test voice::tests::audio_format_equality ... ok
[INFO] [stdout] test voice::tests::audio_format_serde ... ok
[INFO] [stdout] test voice::tests::default_api_base_url_value ... ok
[INFO] [stdout] test voice::tests::default_sample_rate_value ... ok
[INFO] [stdout] test telegram::tests::process_webhook_update_allowed_chat_passes ... ok
[INFO] [stdout] test telegram::tests::process_webhook_update_valid ... ok
[INFO] [stdout] test telegram::tests::chat_allowed_filters_with_deny_on_empty ... ok
[INFO] [stdout] test signal::tests::send_trait_impl_network_error ... ok
[INFO] [stdout] test telegram::tests::delete_webhook_network_error ... ok
[INFO] [stdout] test voice::tests::synthesis_result_clone ... ok
[INFO] [stdout] test voice::tests::synthesis_result_fields ... ok
[INFO] [stdout] test telegram::tests::with_config_inherits_client ... ok
[INFO] [stdout] test telegram::tests::register_webhook_network_error ... ok
[INFO] [stdout] test telegram::tests::recv_polls_and_handles_network_error ... ok
[INFO] [stdout] test telegram::tests::recv_returns_buffered_message_first ... ok
[INFO] [stdout] test voice::tests::pipeline_new_initializes_counters_to_zero ... ok
[INFO] [stdout] test telegram::tests::with_config_sets_fields ... ok
[INFO] [stdout] test signal::tests::send_typing_best_effort_no_panic ... ok
[INFO] [stdout] test voice::tests::transcription_clone ... ok
[INFO] [stdout] test voice::tests::pipeline_api_key_missing_error ... ok
[INFO] [stdout] test voice::tests::transcription_struct_fields ... ok
[INFO] [stdout] test voice::tests::voice_config_api_key_not_serialized ... ok
[INFO] [stdout] test voice::tests::voice_config_clone ... ok
[INFO] [stdout] test voice::tests::voice_config_custom_sample_rate ... ok
[INFO] [stdout] test voice::tests::voice_config_debug_impl ... ok
[INFO] [stdout] test voice::tests::voice_config_defaults ... ok
[INFO] [stdout] test voice::tests::pipeline_api_key_present ... ok
[INFO] [stdout] test voice::tests::voice_config_partial_json_applies_defaults ... ok
[INFO] [stdout] test voice::tests::voice_config_serde ... ok
[INFO] [stdout] test voice::tests::voice_config_with_api_key ... ok
[INFO] [stdout] test voice::tests::voice_config_with_local_flags ... ok
[INFO] [stdout] test voice::tests::whisper_response_deserialization ... ok
[INFO] [stdout] test voice::tests::whisper_response_full_fields ... ok
[INFO] [stdout] test voice::tests::pipeline_counters ... ok
[INFO] [stdout] test web::tests::format_ws_message_with_metadata ... ok
[INFO] [stdout] test voice::tests::transcription_serde_roundtrip ... ok
[INFO] [stdout] test web::tests::format_and_parse_roundtrip ... ok
[INFO] [stdout] test web::tests::parse_ws_message_empty_json_object ... ok
[INFO] [stdout] test voice::tests::pipeline_config_accessor ... ok
[INFO] [stdout] test web::tests::parse_ws_message_missing_sender_defaults_anonymous ... ok
[INFO] [stdout] test web::tests::parse_ws_message_no_metadata ... ok
[INFO] [stdout] test web::tests::parse_ws_message_rejects_invalid_json ... ok
[INFO] [stdout] test web::tests::parse_ws_message_with_metadata ... ok
[INFO] [stdout] test web::tests::platform_name_is_web ... ok
[INFO] [stdout] test voice::tests::voice_config_empty_json_uses_all_defaults ... ok
[INFO] [stdout] test web::tests::parse_ws_message_missing_id_generates_uuid ... ok
[INFO] [stdout] test web::tests::websocket_adapter_send_recv_roundtrip ... ok
[INFO] [stdout] test whatsapp::tests::format_media_outbound_video_with_caption ... ok
[INFO] [stdout] test whatsapp::tests::format_media_outbound_with_caption ... ok
[INFO] [stdout] test voice::tests::transcribe_fails_without_api_key ... ok
[INFO] [stdout] test whatsapp::tests::format_outbound_produces_valid_json ... ok
[INFO] [stdout] test voice::tests::synthesize_empty_text_network_error ... ok
[INFO] [stdout] test whatsapp::tests::format_media_outbound_without_caption ... ok
[INFO] [stdout] test whatsapp::tests::parse_audio_message ... ok
[INFO] [stdout] test whatsapp::tests::parse_audio_message_has_structured_attachment ... ok
[INFO] [stdout] test whatsapp::tests::parse_document_message ... ok
[INFO] [stdout] test whatsapp::tests::parse_document_message_has_filename_and_attachment ... ok
[INFO] [stdout] test whatsapp::tests::parse_image_message ... ok
[INFO] [stdout] test whatsapp::tests::parse_image_message_has_structured_attachment ... ok
[INFO] [stdout] test whatsapp::tests::parse_image_message_no_caption ... ok
[INFO] [stdout] test whatsapp::tests::parse_inbound_empty_entry_array ... ok
[INFO] [stdout] test whatsapp::tests::parse_inbound_from_webhook_fixture ... ok
[INFO] [stdout] test whatsapp::tests::parse_inbound_metadata_preserved ... ok
[INFO] [stdout] test whatsapp::tests::parse_inbound_missing_changes ... ok
[INFO] [stdout] test whatsapp::tests::parse_inbound_missing_entry ... ok
[INFO] [stdout] test whatsapp::tests::parse_inbound_missing_from_defaults_unknown ... ok
[INFO] [stdout] test whatsapp::tests::parse_inbound_missing_id_generates_uuid ... ok
[INFO] [stdout] test whatsapp::tests::parse_inbound_missing_messages ... ok
[INFO] [stdout] test whatsapp::tests::parse_inbound_missing_value ... ok
[INFO] [stdout] test whatsapp::tests::parse_inbound_text_missing_text_object ... ok
[INFO] [stdout] test whatsapp::tests::parse_inbound_text_no_body_defaults_empty ... ok
[INFO] [stdout] test whatsapp::tests::parse_media_message_no_media_id_defaults_unknown ... ok
[INFO] [stdout] test whatsapp::tests::parse_text_message_no_attachments_key ... ok
[INFO] [stdout] test whatsapp::tests::parse_unsupported_message_type ... ok
[INFO] [stdout] test whatsapp::tests::format_media_outbound_document ... ok
[INFO] [stdout] test whatsapp::tests::parse_video_message_has_structured_attachment ... ok
[INFO] [stdout] test whatsapp::tests::parse_video_message ... ok
[INFO] [stdout] test telegram::tests::with_config_webhook_secret ... ok
[INFO] [stdout] test whatsapp::tests::new_adapter_defaults ... ok
[INFO] [stdout] test web::tests::parse_ws_message_missing_content_defaults_empty ... ok
[INFO] [stdout] test whatsapp::tests::api_url_formats_correctly ... ok
[INFO] [stdout] test voice::tests::synthesize_fails_without_api_key ... ok
[INFO] [stdout] test telegram::tests::send_ephemeral_returns_none_on_failure ... ok
[INFO] [stdout] test telegram::tests::send_typing_best_effort_no_panic ... ok
[INFO] [stdout] test voice::tests::synthesize_network_error ... ok
[INFO] [stdout] test voice::tests::transcribe_network_error ... ok
[INFO] [stdout] test whatsapp::tests::platform_name_is_whatsapp ... ok
[INFO] [stdout] test whatsapp::tests::api_url_custom_endpoint ... ok
[INFO] [stdout] test telegram::tests::send_fails_with_network_error ... ok
[INFO] [stdout] test voice::tests::synthesize_long_text_network_error ... ok
[INFO] [stdout] test whatsapp::tests::process_webhook_valid ... ok
[INFO] [stdout] test whatsapp::tests::process_webhook_allowed_sender ... ok
[INFO] [stdout] test whatsapp::tests::process_webhook_disallowed_sender ... ok
[INFO] [stdout] test whatsapp::tests::process_webhook_no_entry ... ok
[INFO] [stdout] test whatsapp::tests::sender_allowed_empty_secure_denies_all ... ok
[INFO] [stdout] test whatsapp::tests::sender_allowed_filters ... ok
[INFO] [stdout] test whatsapp::tests::sender_allowed_empty_default_denies_all ... ok
[INFO] [stdout] test whatsapp::tests::verify_webhook_challenge_wrong_mode ... ok
[INFO] [stdout] test whatsapp::tests::verify_webhook_challenge_success ... ok
[INFO] [stdout] test whatsapp::tests::verify_webhook_signature_no_secret_rejects ... ok
[INFO] [stdout] test whatsapp::tests::verify_webhook_signature_missing_header ... ok
[INFO] [stdout] test whatsapp::tests::send_trait_impl_network_error ... ok
[INFO] [stdout] test whatsapp::tests::verify_webhook_signature_invalid_hex ... ok
[INFO] [stdout] test whatsapp::tests::send_typing_with_message_id_no_panic ... ok
[INFO] [stdout] test whatsapp::tests::verify_webhook_signature_empty_secret_rejects ... ok
[INFO] [stdout] test whatsapp::tests::verify_webhook_signature_missing_prefix ... ok
[INFO] [stdout] test whatsapp::tests::with_config_sets_fields ... ok
[INFO] [stdout] test whatsapp::tests::mark_as_read_network_error ... ok
[INFO] [stdout] test whatsapp::tests::verify_webhook_challenge_wrong_token ... ok
[INFO] [stdout] test whatsapp::tests::send_ephemeral_returns_none_on_failure ... ok
[INFO] [stdout] test whatsapp::tests::recv_returns_none_for_webhook_adapter ... ok
[INFO] [stdout] test whatsapp::tests::with_config_app_secret ... ok
[INFO] [stdout] test whatsapp::tests::verify_webhook_signature_valid ... ok
[INFO] [stdout] test whatsapp::tests::with_config_verify_token ... ok
[INFO] [stdout] test whatsapp::tests::verify_webhook_signature_invalid ... ok
[INFO] [stdout] test whatsapp::tests::send_typing_without_message_id_no_panic ... ok
[INFO] [stdout] test voice::tests::transcribe_network_error_with_each_format ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 513 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.28s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests ironclad_channels
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test src/a2a.rs - a2a::A2aProtocol::encrypt_message (line 260) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] all doctests ran in 2.02s; merged doctests compilation took 1.93s
[INFO] running `Command { std: "docker" "inspect" "1c0a24e1926f6ad561842733afc9dba0b7ccdcc5df170ae2f675fc64263bca42", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1c0a24e1926f6ad561842733afc9dba0b7ccdcc5df170ae2f675fc64263bca42", kill_on_drop: false }`
[INFO] [stdout] 1c0a24e1926f6ad561842733afc9dba0b7ccdcc5df170ae2f675fc64263bca42
